package cn.yunbamboos.rest.service.apidoc.meta;

import cn.yunbamboos.rest.service.apidoc.IMeta;
import com.alibaba.fastjson2.JSONObject;

public class Info implements IMeta {

    /**
     * 必选. 应用的名称。
     */
    private String title;
    /**
     * 对应用的简短描述。 CommonMark syntax 可以被用来表示富文本呈现。
     */
    private String description;
    /**
     * 指向服务条款的URL地址，必须是URL地址格式。
     */
    private String termsOfService;
    /**所开放的API的联系人信息。*/
    private final Contact contact = new Contact();
    /**所开放的API的证书信息。*/
    private final License license = new License();
    /**必选. API文档的版本信息*/
    private String version;

    @Override
    public JSONObject toJSON() {
        JSONObject json = new JSONObject();
        json.put("title", title);
        json.put("description", description);
        json.put("termsOfService", termsOfService);
        json.put("contact", contact.toJSON());
        json.put("license", license.toJSON());
        json.put("version", version);
        return json;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public void setDescription(String description) {
        this.description = description;
    }

    public void setTermsOfService(String termsOfService) {
        this.termsOfService = termsOfService;
    }

    public void setVersion(String version) {
        this.version = version;
    }

    public Contact getContact() {
        return contact;
    }

    public License getLicense() {
        return license;
    }
}
